home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-02 | 25.9 KB | 1,278 lines |
-
- ******************************************
- * *
- * © Dual Crew 1993 *
- * *
- ******************************************
-
- *************> Cøde : Nzø
- *************> GFX : Red Devil
- *************> Music: MutLeY
-
- Section 'Get ¥Er faRKin MuSiC iN nØw!',Code_C
-
- opt c-,o+,w+
-
- lines1 equ 180
- lines2 equ 46
- lines3 equ 17
- lines4 equ 31
-
- charhi equ 16
-
- music equ 1
-
- incdir "dh1:SA_intro/"
- include data/Blitter_E.s
-
- jmp program
-
- dc.b 10,10,10,10,'Thats it.. get the fuckin file editor '
- dc.b 'out.. by a book and learn to code shitty intros!! '
- dc.b 10,10,10,10,10
- cnop 0,4
-
- program lea $dff000,a5
-
- bsr killsysx
-
- bsr init_copper1
-
- IFNE music
- moveq #0,d0 ;0-8
- bsr mt_init
- ENDC
-
- lea newlevel3(pc),a1
- lea $6c.w,a2
- move.l a1,(a2)
-
- move #$c020,$9a(a5)
-
- bsr routines
- bsr intro
-
- lea copperlist(pc),a0
- move.l a0,$80(a5)
-
- move #1,allow_wr
- move #1,allow_sc
-
- beam0 move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$12000,d7
- bne.s beam0
-
- bsr.s routines
-
- btst #6,$bfe001
- bne.s beam0
-
- lea systemsave(pc),a4
- move.l 12(a4),$68.w
- move.l 16(a4),$6c.w
- move 8(a4),$9a(a5)
- move 10(a4),$96(a5)
- move.l (a4),$80(a5)
- move.l 4(a4),$84(a5)
-
- fadecli2 move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$13000,d7
- bne.s fadecli2
- moveq #1,d5
- bsr mt_music
- lea systemsave(pc),a4
- move.l 4(a4),a0
- lea 6(a0),a1
- lea savepal(pc),a0
- moveq #4-1,d7
- moveq #6,d6
- bsr fader
- tst d1
- beq.s fadecli2
-
- IFNE music
- bsr mt_end
- ENDC
-
- moveq #0,d0
- rts
-
- routines bsr wave
- bsr manager
- bsr animate_spr
- bsr writer
- bsr copy
- bsr clear
- rts
-
- *****************************************************************************
-
- newlevel3 move sr,-(sp) ;sr onto stack
- movem.l d0-d7/a0-a6,-(sp) ;all regs to stack
- lea $dff000,a5
- move #$20,$9c(a5)
-
- bsr scroll
-
- IFNE music
- moveq #0,d5
- bsr mt_music
- ENDC
-
- movem.l (sp)+,d0-d7/a0-a6
- move (sp)+,sr
- rte
-
- init_copper1 lea systemsave(pc),a4
- move.l 4(a4),a0
- lea 6(a0),a1
- lea savepal(pc),a0
- move (a1),(a0)+
- move 4(a1),(a0)+
- move 8(a1),(a0)+
- move 12(a1),(a0)+
- bsr update3
- lea multable(pc),a0
- move #144-1,d1
- moveq #0,d0
- multab move d0,(a0)+
- add #44,d0
- dbf d1,multab
- lea screen,a2
- kccp clr.l (a2)+
- cmp.l #screen+$10000,a2
- bne.s kccp
- lea logo,a0
- lea screen+((44*4)*6),a1
- rtt move (a0)+,(a1)+
- cmp.l #logoend,a0
- blo.s rtt
- lea sprxpos(pc),a4 ;initialise sonic
- move.l #$017000d0,(a4)
- lea sprframe(pc),a4
- clr (a4)
- lea screen,a0
- lea bits1(pc),a1
- lea bits1_1(pc),a2
- moveq #4-1,d1
- move.l a0,d0
- setloop1 move d0,6(a1)
- move d0,6(a2)
- swap d0
- move d0,2(a1)
- move d0,2(a2)
- swap d0
- lea 8(a1),a1
- lea 8(a2),a2
- add.l #44,d0
- dbf d1,setloop1
- lea scrollbuffer+2,a0
- lea bits2(pc),a1
- moveq #2-1,d1
- move.l a0,d0
- setloop2 move d0,6(a1)
- swap d0
- move d0,2(a1)
- swap d0
- lea 8(a1),a1
- add.l #48*30,d0
- dbf d1,setloop2
- lea pal(pc),a0
- lea palette(pc),a1
- lea p16(pc),a2
- moveq #16-1,d0
- setp1 move (a0),2(a1)
- move (a0)+,2(a2)
- lea 4(a1),a1
- lea 4(a2),a2
- dbf d0,setp1
- lea block1(pc),a0
- move #lines1-1,d1
- move.l #$1c09fffe,d2
- insert1 move.l d2,(a0)+
- move.l #$00f00000,(a0)+
- move.l #$00f20000,(a0)+
- move.l #$01a00000,(a0)+
- add.l #$01000000,d2
- dbf d1,insert1
- lea block2(pc),a0
- moveq #lines2-1,d1
- move.l #$d209fffe,d2
- insert2 move.l d2,(a0)+
- move.l #$00e00000,(a0)+
- move.l #$00e20000,(a0)+
- move.l #$01820000,(a0)+
- add.l #$01000000,d2
- dbf d1,insert2
- lea block3(pc),a0
- moveq #lines3-1,d1
- move.l #$2109fffe,d2
- insert3 move.l d2,(a0)+
- move.l #$00e00000,(a0)+
- move.l #$00e20000,(a0)+
- move.l #$01800015,(a0)+
- move.l #$01820000,(a0)+
- add.l #$01000000,d2
- dbf d1,insert3
- lea blockblur(pc),a0
- moveq #lines4-1,d1
- move.l #$0209fffe,d2
- insert4 move.l #$00e40000,(a0)+
- move.l #$00e60000,(a0)+
- move.l d2,(a0)+
- add.l #$01000000,d2
- dbf d1,insert4
- lea cline(pc),a0
- move.l #$01800015,d0
- moveq #59-1,d1
- setcline move.l d0,(a0)+
- dbf d1,setcline
- move.l #$01800015,d0
- move.l d0,(a0)
- bset #1,$bfe001
- rts
-
- *****************************************************************************
-
- * Intro part
-
- *****************************************************************************
-
- intro move.l #250-1,d6
- intro1 move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$13000,d7
- bne.s intro1
- dbf d6,intro1
-
- bsr fadecli
- lea copperlist2(pc),a0
- move.l a0,$80(a5)
- clr $88(a5)
- move #$83e0,$96(a5)
- bsr.s makeline
- bsr.s moveline
- addq #1,allow_so
- bsr fadelogoup
-
- move.l #250-1,d6
- intro2 move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$13000,d7
- bne.s intro2
- dbf d6,intro2
-
- frame movem.l d6/d7,-(sp)
- moveq #5,d6
- frame1 move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$12000,d7
- bne.s frame1
- dbf d6,frame1
- movem.l (sp)+,d6/d7
- rts
-
- makeline lea cline(pc),a0
- moveq #59-1,d0
- lineup move #$fff,2(a0)
- lea 4(a0),a0
- bsr.s frame
- dbf d0,lineup
- rts
-
- moveline lea upline(pc),a0
- move #$100,d0
- move #$fff,6(a0)
- move #$004,14(a0)
- bump sub d0,(a0)
- sub d0,8(a0)
- bsr.s frame
- cmp #9,(a0)
- bne.s bump
- rts
-
- fadecli move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$13000,d7
- bne.s fadecli
- lea systemsave(pc),a4
- move.l 4(a4),a0
- lea 6(a0),a1
- lea blank(pc),a0
- moveq #4-1,d7
- moveq #6,d6
- bsr.s fader
- tst d1
- beq.s fadecli
- rts
-
- fadelogoup move.l 4(a5),d7
- and.l #$1ff00,d7
- cmp.l #$13000,d7
- bne.s fadelogoup
- lea pal(pc),a0
- lea logopal+2(pc),a1
- moveq #16-1,d7
- moveq #6,d6
- bsr.s fader
- tst d1
- beq.s fadelogoup
- rts
-
- fader movem.l a0-a2/d0/d2-d7,-(sp)
- lea fadebits(pc),a2
- addq.b #1,(a2)
- cmp.b (a2),d6
- bne.s ntt1
- clr.b (a2)
- addq.b #1,1(a2)
- cmp.b #16,1(a2)
- bne.s floop1
- moveq #-1,d1
- clr.w (a2)
- bra.s ntt2
- floop1 move (a0)+,d6
- move (a1),d5
- cmp d5,d6
- beq.s nextc
- bsr.s mask
- cmp d2,d3
- blt.s minus
- neg d4
- minus sub d4,(a1)
- nextc lea 4(a1),a1
- dbf d7,floop1
- ntt1 moveq #0,d1
- ntt2 movem.l (sp)+,a0-a2/d0/d2-d7
- rts
-
-
- mask moveq #0,d4
- move d6,d3
- move d5,d2
- and #$f,d6
- and #$f,d5
- cmp.b d5,d6
- beq.s okblue
- addq #1,d4
- okblue move d3,d6
- move d2,d5
- and #$f0,d6
- and #$f0,d5
- cmp.b d5,d6
- beq.s okgreen
- add #$10,d4
- okgreen move d3,d6
- move d2,d5
- and #$f00,d6
- and #$f00,d5
- cmp d5,d6
- beq.s okred
- add #$100,d4
- okred rts
-
- *****************************************************************************
-
- * Main part
-
- *****************************************************************************
-
- manager tst changing
- beq.s working
- cmp #1,changing
- beq.s colzdown
- bra.s colzup
-
- working lea pauser(pc),a0
- cmp #50*5,(a0)
- bne.s not_ready
- clr (a0)
- addq #1,changing
- bra.s there
- not_ready addq #1,(a0)
- there rts
-
- colzdown lea gfx_offset(pc),a0
- add.l #44,(a0)
- cmp.l #44*144,(a0)
- bne.s waitamo
- bsr.s update3
- addq #1,changing
- waitamo rts
-
- colzup lea gfx_offset(pc),a0
- sub.l #44,(a0)
- tst.l (a0)
- bne.s waitamo2
- clr changing
- waitamo2 rts
-
- update3 moveq #4-1,d7 ;fetch sinedata
- lea vbar_datalist2(pc),a1
- lea wave_chan1(pc),a2
- move (a1),d0
- cmp #33,2(a1,d0.w)
- bne.s ok_v91
- clr (a1)
- bra.s update3
- ok_v91 addq #8,(a1)
- lea 2(a1,d0.w),a1
- setx move (a1)+,(a2)+
- dbf d7,setx
- update4 moveq #0,d0
- lea which_gfx(pc),a0
- lea fx_gfx(pc),a1
- move.b (a0),d0
- tst.b 1(a0,d0.w)
- bpl.s ok_v92
- clr.b (a0)
- bra.s update4
- ok_v92 move.b 1(a0,d0.w),d0
- addq.b #1,(a0)
- tst.b d0
- bne.s set1
- move.l #fx_gfx1,(a1)
- bra.s update5
- set1 move.l #fx_gfx2,(a1)
- update5 moveq #0,d0
- lea which_offset(pc),a0
- lea offset(pc),a1
- move.b (a0),d0
- tst.b 1(a0,d0.w)
- bpl.s ok_v93
- clr.b (a0)
- bra.s update5
- ok_v93 move.b 1(a0,d0.w),1(a1)
- addq.b #1,(a0)
- lea col_offsets1(pc),a0
- lea clist_offset1(pc),a1
- bsr.s update6
- lea col_offsets2(pc),a0
- lea clist_offset2(pc),a1
- bsr.s update6
- rts
-
- update6 moveq #0,d0
- move (a0),d0
- tst 2(a0,d0.w)
- bpl.s ok_v94
- clr (a0)
- bra.s update6
- ok_v94 move 2(a0,d0.w),d0
- move.l d0,(a1)
- addq #2,(a0)
- rts
-
- wave lea block1(pc),a1
- lea wavecols(pc),a6
- move.l gfx_offset(pc),d4
- move.l (a6),a4
- move.l 4(a6),a6
- add.l clist_offset1(pc),a4
- add.l clist_offset2(pc),a6
- lea sine,a3
- lea wave_crp(pc),a2
- move (a2),d6
- move wave_chan1(pc),d7
- add d7,(a2)
- move 2(a2),d5
- move wave_chan2(pc),d7
- add d7,2(a2)
- move #lines1-1,d7
- loop55 move d6,d0
- add wave_freq1(pc),d6
- and #$1ff,d0
- add d0,d0
- move (a3,d0.w),d0
- move d5,d2
- add wave_freq2(pc),d5
- and #$1ff,d2
- add d2,d2
- add (a3,d2.w),d0
- move (a3,d2.w),d2
- add d2,d0
- lsr #3,d0
- movem.l d0/d5/d6,-(sp)
- bsr blob
- movem.l (sp)+,d0/d5/d6
- dbf d7,loop55
-
- lea fake(pc),a1
- moveq #2-1,d7
- adjust1 move d6,d0
- add wave_freq1(pc),d6
- and #$1ff,d0
- add d0,d0
- move (a3,d0.w),d0
- move d5,d2
- add wave_freq2(pc),d5
- and #$1ff,d2
- add d2,d2
- add (a3,d2.w),d0
- move (a3,d2.w),d2
- add d2,d0
- lsr #3,d0
- movem.l d0/d5/d6,-(sp)
- bsr blob2
- movem.l (sp)+,d0/d5/d6
- dbf d7,adjust1
-
- lea block2(pc),a1
- move #lines2-1,d7
- loop45 move d6,d0
- add wave_freq1(pc),d6
- and #$1ff,d0
- add d0,d0
- move (a3,d0.w),d0
- move d5,d2
- add wave_freq2(pc),d5
- and #$1ff,d2
- add d2,d2
- add (a3,d2.w),d0
- move (a3,d2.w),d2
- add d2,d0
- lsr #3,d0
- movem.l d0/d5/d6,-(sp)
- bsr blob
- movem.l (sp)+,d0/d5/d6
- dbf d7,loop45
-
- lea blockblur(pc),a1
- move #lines4-1,d7
- adjust2 move d6,d0
- add wave_freq1(pc),d6
- and #$1ff,d0
- add d0,d0
- move (a3,d0.w),d0
- move d5,d2
- add wave_freq2(pc),d5
- and #$1ff,d2
- add d2,d2
- add (a3,d2.w),d0
- move (a3,d2.w),d2
- add d2,d0
- lsr #3,d0
- movem.l d0/d5/d6,-(sp)
- bsr blob3
- movem.l (sp)+,d0/d5/d6
- dbf d7,adjust2
-
- lea block3(pc),a1
- move #lines3-1,d7
- loop56 move d6,d0
- add wave_freq1(pc),d6
- and #$1ff,d0
- add d0,d0
- move (a3,d0.w),d0
- move d5,d2
- add wave_freq2(pc),d5
- and #$1ff,d2
- add d2,d2
- add (a3,d2.w),d0
- move (a3,d2.w),d2
- add d2,d0
- lsr #3,d0
- movem.l a0/d0/d5/d6,-(sp)
- lea multable(pc),a0
- bsr.s blob4
- movem.l (sp)+,a0/d0/d5/d6
- dbf d7,loop56
- rts
-
- blob4 move d0,d6
- move offset(pc),d3
- beq.s skip_lsr4
- lsr d3,d6
- skip_lsr4 add d6,d6
- add d0,d0
- move.l fx_gfx(pc),d5
- add (a0,d0.w),d5
- sub.l d4,d5
- move d5,10(a1)
- swap d5
- move d5,6(a1)
- move (a6,d6.w),18(a1)
- lea 20(a1),a1
- rts
-
- blob move d0,d6
- move offset(pc),d3
- beq.s skip_lsr
- lsr d3,d6
- skip_lsr add d6,d6
- add d0,d0
- move.l fx_gfx(pc),d5
- add multable(pc,d0.w),d5
- sub.l d4,d5
- move d5,10(a1)
- swap d5
- move d5,6(a1)
- move (a6,d6.w),14(a1)
- lea 16(a1),a1
- rts
-
- blob2 move d0,d6
- move offset(pc),d3
- beq.s skip_lsr2
- lsr d3,d6
- skip_lsr2 add d0,d0
- add d6,d6
- move.l fx_gfx(pc),d5
- add multable(pc,d0.w),d5
- sub.l d4,d5
- move d5,14(a1)
- swap d5
- move d5,10(a1)
- move (a6,d6.w),18(a1)
- lea 52(a1),a1
- rts
-
- blob3 add d0,d0
- move.l fx_gfx(pc),d5
- add multable(pc,d0.w),d5
- sub.l d4,d5
- move d5,6(a1)
- swap d5
- move d5,2(a1)
- lea 12(a1),a1
- rts
-
- multable ds.w 144
-
-
- writer tst allow_wr
- beq skip_wr
- tst npause
- beq.s cont1
- subq #1,npause
- bra skip_wr
- cont1 movem.l a0-a4/d0-d7,-(sp)
- move.l textptr(pc),a2
- lea textpos(pc),a3
- next cmp.b #-2,(a2)
- bne.s not_page
- moveq #0,d0
- move.b 1(a2),d0
- mulu #50,d0
- move d0,npausetemp
- clr.l (a3)
- clr allow_wr
- move #1,allow_co
- lea text(pc),a2
- bra done
- not_page cmp.b #-1,(a2)
- bne.s not_looped
- moveq #0,d0
- move.b 1(a2),d0
- mulu #50,d0
- move d0,npausetemp
- clr.l (a3)
- clr allow_wr
- move #1,allow_co
- lea 2(a2),a2
- bra.s done
- not_looped cmp.b #13,(a2)
- bne.s no_return
- clr (a3)
- add #(44*4)*charhi,2(a3)
- lea 1(a2),a2
- bra.s next
- no_return move.b (a2)+,d0
- sub.b #32,d0
- and #$ff,d0
- add d0,d0
- lea font2,a0
- lea charbuffer,a1
- lea (a0,d0.w),a0
- move (a3),d5
- move 2(a3),d6
- lea (a1,d5.w),a1
- lea (a1,d6.w),a1
- move.l #-1,bltafwm(a5)
- move.l #$09f00000,bltcon0(a5)
- move #(944/8)-2,bltamod(a5)
- move #44-2,bltdmod(a5)
- move.l a0,bltapth(a5)
- move.l a1,bltdpth(a5)
- move #(64*(16*4))+1,bltsize(a5)
- bsr waitbli
- addq #2,(a3)
- done move.l a2,textptr
- movem.l (sp)+,a0-a4/d0-d7
- skip_wr rts
-
- copy tst allow_co
- beq skip_co
- tst npause
- beq.s cont2
- subq #1,npause
- bra skip_co
- cont2 moveq #5-1,d7
- moveq #0,d6
- blinds1 lea charbuffer,a0
- lea screen+(176*100),a1
- lea copy_offset(pc),a2
- move.l (a2),d0
- lea (a0,d0.l),a0
- lea (a1,d0.l),a1
- lea (a0,d6.l),a0
- lea (a1,d6.l),a1
- move.l #-1,bltafwm(a5)
- move.l #$09f00000,bltcon0(a5)
- moveq #0,d0
- move d0,bltamod(a5)
- move d0,bltdmod(a5)
- move.l a0,bltapth(a5)
- move.l a1,bltdpth(a5)
- move #(64*(1*4))+22,bltsize(a5)
- bsr waitbli
- add.l #(44*4)*16,d6
- dbf d7,blinds1
- add.l #44*4,(a2)
- cmp.l #(44*4)*16,(a2)
- bne.s skip_co
- clr.l (a2)
- clr allow_co
- move #1,allow_cl
- move npausetemp(pc),npause ;onscreen
- skip_co rts
-
- clear tst allow_cl
- beq.s skip_cl
- tst npause
- beq.s cont3
- subq #1,npause
- bra.s skip_cl
- cont3 move #1,allow_wr
- moveq #5-1,d7
- moveq #0,d6
- blinds2 lea screen+(176*100),a1
- lea (a1,d6.l),a1
- lea copy_offset(pc),a2
- move.l (a2),d0
- lea (a1,d0.l),a1
- move.l #-1,bltafwm(a5)
- move.l #$01000000,bltcon0(a5)
- clr bltdmod(a5)
- move.l a1,bltdpth(a5)
- move #(64*(1*4))+22,bltsize(a5)
- bsr waitbli
- add.l #(44*4)*16,d6
- dbf d7,blinds2
- add.l #44*4,(a2)
- cmp.l #(44*4)*16,(a2)
- bne.s skip_cl
- clr.l (a2)
- clr allow_cl
- skip_cl rts
-
- scroll tst allow_sc
- beq.s nosc
- lea scrolled(pc),a0
- addq #1,(a0)
- cmp #4,(a0)
- bne.s normals
- clr (a0)
- bsr.s newchar
- normals lea scrollbuffer,a1
- lea 2(a1),a0
- moveq #1,d7
- plane4 movem.l a0-a1,-(sp)
- move.l #-1,bltafwm(a5)
- move.l #$c9f00000,bltcon0(a5)
- moveq #48-46,d0
- move d0,bltamod(a5)
- move d0,bltdmod(a5)
- move.l a0,bltapth(a5)
- move.l a1,bltdpth(a5)
- move #(64*30)+23,bltsize(a5)
- bsr waitbli
- movem.l (sp)+,a0-a1
- lea 48*30(a1),a1
- lea 48*30(a0),a0
- dbf d7,plane4
- nosc rts
-
- newchar movem.l a0-a4/d0-d7,-(sp)
- move.l scrollpoint(pc),a2
- tst.b (a2)
- bpl.s no_loop
- lea scroller(pc),a2
- no_loop move.b (a2)+,d0
- move.l a2,scrollpoint
- cmp.b #'b',d0
- bne.s notr
- moveq #8,d0
- bra.s r
- notr cmp.b #'a',d0
- bne.s notDC
- moveq #4,d0
- bra.s r
- notDC sub.b #32,d0
- and #$ff,d0
- add d0,d0
- r lea font1,a0
- lea scrollbuffer+44,a1
- lea (a0,d0.w),a0
- moveq #1,d7
- plane2 movem.l a0-a1,-(sp)
- move.l #-1,bltafwm(a5)
- move.l #$09f00000,bltcon0(a5)
- move #(944/8)-2,bltamod(a5)
- move #48-2,bltdmod(a5)
- move.l a0,bltapth(a5)
- move.l a1,bltdpth(a5)
- move #(64*30)+1,bltsize(a5)
- bsr.s waitbli
- movem.l (sp)+,a0-a1
- lea 48*30(a1),a1
- lea $dd4(a0),a0
- dbf d7,plane2
- movem.l (sp)+,a0-a4/d0-d7
- rts
-
- waitbli move #$8400,$96(a5)
- wb1 btst #14,2(a5)
- bne.s wb1
- wb2 btst #14,2(a5)
- bne.s wb2
- move #$400,$96(a5)
- rts
-
- animate_spr tst allow_so
- beq.s there1
-
- lea sprxpos(pc),a4 ;initialise sonic
- subq #2,(a4)
- cmp #$120,(a4)
- bne.s there1
- clr allow_so
-
- there1 lea framecount(pc),a4
- addq #1,(a4) ;just makes sure frame is
- cmp #5,(a4) ;updated at a certain rate.
- bne.s noadvframe
- clr (a4)
- lea sprframe(pc),a4
- move.l splist(pc),a2
- cmp.b #-1,(a2)
- bne.s nol8
- lea spdat(pc),a2
- nol8 move.b (a2)+,1(a4)
- move.l a2,splist
- noadvframe moveq #0,d0 ;find our sprite frame..
- move sprframe(pc),d0
- move.l #(200*6),d1
- muls d0,d1
- lea spritedata,a1
- lea (a1,d1.l),a1
- bsr spritepoint ;set the copperlist
- move sprxpos(pc),d0
- move sprypos(pc),d1
- add #$70,d0 ;add a little..
- moveq #48,d4 ;sprite height
- moveq #0,d2 ;sprite control word
- move.b d1,d2 ;put low byte of sprypos in con
- asl #8,d2 ;move along
- move d0,d3 ;keep sprxpos safe
- asr #1,d3 ;get rid of lsb
- move.b d3,d2 ;put low byte of sprxpos in con
- swap d2 ;swap control regs
- move d1,d3 ;keep sprypos
- add d4,d3 ;add height to sprypos for end.
- move.b d3,d2 ;put low byte of vend in con
- asl #8,d2 ;move along
- btst #0,d0 ;check sprxpos lsb
- beq.s nosethlow
- or #1,d2 ;put lsb status into con
- nosethlow btst #8,d1 ;check sprypos msb
- beq.s nosetvhigh
- or #4,d2 ;put msb status into con
- nosetvhigh btst #8,d3 ;check vertend msb
- beq.s nosetvend
- or #2,d2 ;put vend msb into control
- nosetvend bclr #7,d2 ;set no attach
- move.l d2,(a1)
- bset #7,d2 ;set attach
- move.l d2,200(a1)
- add.l #$00080000,d2
- bclr #7,d2 ;set no attach
- move.l d2,400(a1)
- bset #7,d2 ;set attach
- move.l d2,600(a1)
- add.l #$00080000,d2
- bclr #7,d2 ;set no attach
- move.l d2,800(a1)
- bset #7,d2 ;set attach
- move.l d2,1000(a1)
- rts
-
- spritepoint lea spritelist1(pc),a0
- bsr.s setemup
- lea spritelist2(pc),a0 ;this routine just sets
- setemup move.l a1,-(sp) ;the copperlist sprite
- moveq #6-1,d7 ;pointers...
- setsprites move.l a1,d0
- move d0,6(a0)
- swap d0
- move d0,2(a0)
- lea 8(a0),a0
- lea 200(a1),a1
- dbf d7,setsprites
- move.l (sp)+,a1
- rts
-
- IFNE music
- include data/st-replay.s
- ENDC
-
- killsysx move.l $4.w,a6
- lea gfxname(pc),a1
- moveq #0,d0
- jsr -552(a6)
- move.l d0,a6
- move #$8000,d7
- lea systemsave(pc),a4
- move.l $26(a6),(a4)
- move.l $32(a6),4(a4)
- move $1c(a5),d0
- move 2(a5),d1
- or d7,d0
- and #$3ff,d1
- or d7,d1
- move d0,$8(a4)
- move d1,$a(a4)
- move #$7fff,$9a(a5)
- move #$20,$96(a5)
- move.l $68.w,12(a4)
- move.l $6c.w,16(a4)
- rts
-
- gfxname dc.b "graphics.library",0
- even
-
- systemsave ds.l 5
-
- *****************************************************************************
-
- splist dc.l spdat
- spdat REPT 3
- dc.b 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7
- ENDR
- REPT 2
- dc.b 8,9,10,11,12,13,14,15,8,9,10,11,12,13,14,15
- ENDR
- dc.b -1
- EVEN
-
- textptr dc.l text0
-
- *Textwriter options : -1 to end a page and pause value (secs) after!
- * -2 to end a page and pause value as above and loop
- * 13 to next line
-
- *alignment 123456789012345678901
-
- text0 dc.b " ",13
- dc.b " ",13
- dc.b " ",13
- dc.b " ",13
- dc.b " ",13
- dc.b -1,6
- text dc.b " THE UK CO-OPERATION ",13
- dc.b " MUSICDISK PROJECT ",13
- dc.b "CALLED -SONIC ATTACK-",13
- dc.b "IS NEARING COMPLETION",13
- dc.b " AT LONG LAST! ",13
- dc.b -1,6
- text2 dc.b " SO, IF YOU ARE A UK ",13
- dc.b " BASED MUSICIAN, AND ",13
- dc.b " WOULD LIKE TO GET ",13
- dc.b " INVOLVED IN THE ",13
- dc.b " PROJECT, WRITE TO ",13
- dc.b -1,6
- text3 dc.b " * RED DEVIL * ",13
- dc.b " 47 MOXLEY ROAD ",13
- dc.b " DARLASTON ",13
- dc.b " WEST MIDLANDS ",13
- dc.b " WS10 7RE ",13
- dc.b -1,10
- text4 dc.b " ",13
- dc.b "*-*-*-*-*-*-*-*-*-*-*",13
- dc.b "CREDIT FOR THIS INTRO",13
- dc.b "*-*-*-*-*-*-*-*-*-*-*",13
- dc.b " ",13
- dc.b -1,4
- text5 dc.b "*********************",13
- dc.b " CODING BY NZO ",13
- dc.b "GRAPHICS BY RED DEVIL",13
- dc.b " MUSIC BY MUTLEY ",13
- dc.b "*********************",13
- dc.b -1,5
- text6 dc.b " CALL OUR BOARDS ",13
- dc.b "*-*-*-*-*-*-*-*-*-*-*",13
- dc.b " GURUS DREAM WHQ ",13
- dc.b " 46-8-282760 ",13
- dc.b " 9 NODES, 6.4 GIGS ",13
- dc.b -1,7
- text7 dc.b " COMPLEX CORROSION ",13
- dc.b " 1-612-7730522 ",13
- dc.b "*-*-*-*-*-*-*-*-*-*-*",13
- dc.b " FORGOTTEN REALMS ",13
- dc.b " 44-272-696594 ",13
- dc.b -1,7
- text8 dc.b " EASTERN FRONT ",13
- dc.b " 358-PRIVATE ",13
- dc.b "*-*-*-*-*-*-*-*-*-*-*",13
- dc.b " SECRET WORLD ",13
- dc.b " 49-30-885-4598 ",13
- DC.B -1,7
- text9 dc.b " ",13
- dc.b " LOOK OUT FOR MORE ",13
- dc.b " SMART PRODUCTIONS ",13
- dc.b " FROM US VERY SOON ",13
- dc.b " ",13
- dc.b -2,4
- EVEN
-
- * 'a' = Dual Crew Logo
- * '#' = 'Of'
- * 'b' = '®'
-
- scrollpoint dc.l scroller0
- scroller0 dc.b " "
- scroller dc.b "WELCOME TO A NEW PRODUCTION FROM a DUAL CREW a "
- dc.b "THIS IS JUST TO ANNOUNCE THAT WE ARE STILL LOOKING "
- DC.B "FOR ANY EXCELLENT UK MUSICIAN THAT HASN'T SUBMITTED "
- DC.B "A TUNE FOR SONIC ATTACKb. IF YOU'DE LIKE TO GET "
- DC.B "INVOLVED, WRITE TO THE ADDRESS ABOVE NOW! "
- dc.b "GREETINGS FROM RED DEVIL TO ZEPHYR, IRIDON AND ALL THE SHINING "
- DC.B "IVE SPOKEN WITH RECENTLY... DWEL, TOM COPPER#ALCATRAZ "
- DC.B "MYSTIK, KREST, JUDGE DROKK#ANARCHY FAIRFAX#ANDROMEDA "
- DC.B "MANX, MARVIN, WINTERMUTE, ICE, BLACK CAT, HYDRO, FAST EDDIE, "
- DC.B "POT NOODLE, CEVIN KEY, MASCOT, MYRMURTH, THARGOID#ANTHROX "
- DC.B "PRAYER#BANAL PROJECTS STRATOS, DHM#COMPLEX NIGHTSHADE, "
- dc.b "ONE, OHIO#CRUSADERS WINGER, LEVIATHON, MAVE#CRYSTAL "
- DC.B "ELWOOD, DEXTER#DELICIOUS HYBRID, FLIGHTY, NO.5, INTREQ, "
- dc.b "YAZ, FLAME#DIGITAL ASSASSIN, MINT SAUCE#DIMENSION X "
- DC.B "RA#DREAMDEALERS REFLEX, RCF, ZIPTRONIX#ELEVATION "
- DC.B "GROO AND RUFFERTO#ESSENCE MATTI JE TEPPO#FAIRLIGHT "
- DC.B "SHERWIN#FRAXION CALVIN#GENOCIDE JAY ONE, HOLLYWOOD, "
- dc.b "SEC4#JETSET RWO#KEFRENS THE PRIDE, MAJIC MUSHROOM, "
- dc.b "PARADROID, KR33, NUKE, FACET, DAN#LEMON. PAZZA#LSD "
- DC.B "TDK#MELON DEZIGN RADAR, LINEBACKER, ACTION MAN#MINISTRY "
- DC.B "RATTLE, RAMJET#PMC MAT, WONDERBOY, RAIDER, RAZOR "
- dc.b "BLADE#RAZOR 1911 JOHN, KRIS, META#REBELS MUTLEY#RELAY "
- DC.B "SPYCATCHER, HI-LITE, BUTCH, ZODIAK#SCOOPEX "
- DC.B "COUGAR, CRUISER#SANITY D-SIGN, WOTW, D-ZIRE, BAROCK, "
- dc.b "RAVE#SILENTS COAXIAL#SKID ROW AXE!#SUBMISSION "
- DC.B "DENNIS T#SUPPLEX ALI BABA#TARKUS TEAM GRAY ONE, PEACHY, "
- dc.b "FADE ONE, FORNAX#TRSI HEIN DESIGN#VISION DARKIE#WIZZCAT "
- dc.b -1
- EVEN
-
- waitpage dc.w 0
- textpos dc.w 0,0
- fadebits dc.b 0,0
- pauser dc.w 2*40
- changing dc.w 0
-
- scrolled dc.w 0
- sprxpos dc.w 0 ;sprite x position
- sprypos dc.w 0 ;sprite y position
- sprframe dc.w 0 ;current sprite frame
- framecount dc.w 0 ;frame count for speed..
-
- wave_chan1 dc.w 0
- wave_chan2 dc.w 0
- wave_freq1 dc.w 0
- wave_freq2 dc.w 0
- wave_crp dc.w 0,0
- wavecols dc.l cols2,cols1
- fx_gfx dc.l fx_gfx1
- offset dc.w 0
- clist_offset1 dc.l 0
- clist_offset2 dc.l 0
- gfx_offset dc.l 143*44
- blank REPT 16
- dc.w $015
- ENDR
- allow_so dc.w 0
- allow_wr dc.w 0
- allow_co dc.w 0
- allow_cl dc.w 0
- allow_sc dc.w 0
- npause dc.w 0
- npausetemp dc.w 0
- copy_offset dc.l 0
- savepal ds.w 4
-
- vbar_datalist2 dc.w 0
- dc.w 11,21,-8,-7
- dc.w 257,-245,-255,-259
- dc.w -15,15,-15,-14
- dc.w -276,2,213,4
- dc.w -260,4,249,-11
- dc.w -2,-14,-19,-5
- dc.w 3,1,17,-11
- dc.w 7,-11,2,6
- dc.w -251,221,2,-19
- dc.w -11,251,-18,-259
- dc.w 18,18,18,-18
- dc.w -9,-4,2,-1
- dc.w -11,2,-1,3
- dc.w -255,5,215,3
- dc.w 7,-275,2,256
- dc.w 9,-255,11,250
- dc.w 2,-3,-1,-1
- dc.w -255,251,261,-257
- dc.w -259,256,-5,-3
- dc.w -251,253,258,-255
- dc.w 11,8,-15,-7
- dc.w -3,5,3,-254
- dc.w 254,6,-250,-2
- dc.w -255,-2,257,-1
- dc.w 28,-28,1,-9
- dc.w 13,-8,9,-19
- dc.w 254,7,-250,-3
- dc.w 47,-253,-43,258
- dc.w 47,-41,5,-3
- dc.w -5,253,-2,-263
- dc.w -251,-7,266,1
- dc.w 258,254,255,-257
- dc.w 249,-9,-257,6
- dc.w -9,6,-1,-2
- dc.w -3,5,3,-254
- dc.w 33
-
- which_gfx dc.b 0
- dc.b 0,0,1,0,0,1,0,1,0,0,0,1,1,1,0,0,1,0,0,1,1,1,0,1
- dc.b 1,1,0,0,1,0,0,1,0,1,1,1,1,0,1,0,1,0,1,0,0,1,1
- dc.b -1
- EVEN
- which_offset dc.b 0
- dc.b 1,0,2,3,1,2,2,1,2,1,0,2,1,3,1,1,3,2,0,2,2,0,2
- dc.b 1,2,3,1,2,3,0,1,2,2,1,3,1,2,1,3,1,2,1,3,2,0,2
- dc.b -1
- EVEN
- col_offsets1 dc.w 0
- dc.w 40,80,120,40,0,20,16,100,50,32,10,0,12,60
- dc.w 70,90,100,30,20,100,200,20,10,40,0,70
- dc.w 16,32,48,56,64,80,96,110,120,130,140,150,160
- dc.w 0,50,76,170,180,32,160,40,132
- dc.w -1
- col_offsets2 dc.w 0
- dc.w 70,90,100,30,20,100,200,20,10,40,0,70
- dc.w 40,80,120,40,0,20,16,100,50,32,10,0,12,60
- dc.w 20,16,32,102,30,2,40,36,120,60,28,180
- dc.w 50,210,30,10,170
- dc.w -1
- EVEN
-
- pal dc.w $15,$eee,$ddd,$ccc,$bbb,$aaa,$999,$888
- dc.w $677,$567,$256,$036,$03f,$02d,$00b,$002
-
- copperlist dc.w $8e,$1b41,$90,$40f1,$92,$30,$94,$d8,$104,$24,$102,0
- dc.w $100,$5200,$108,44*4-44,$10a,44*4-44
- spritelist1 dc.w $120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0,$12e,0
- dc.w $130,0,$132,0,$134,0,$136,0,$138,0,$13a,0,$13c,0,$13e,0
-
- bits1 dc.w $e0,0,$e2,0,$e4,0,$e6,0,$e8,0,$ea,0,$ec,0,$ee,0
-
- palette dc.w $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
- dc.w $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
- p16 dc.w $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
- dc.w $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
-
- block1 ds.w lines1*8 ;ends $cf09
-
- fake dc.w $d009,$fffe,$100,$1200
- dc.w $e0,0,$e2,0,$182,0
- Dc.w $1a0,0,$1a2,$fff,$1a4,$ccc,$1a6,$888
- Dc.w $1a8,$555,$1aa,$79f,$1ac,$38f,$1ae,$16d
-
- dc.w $d109,$fffe,$100,$1200
- dc.w $e0,0,$e2,0,$182,0
- Dc.w $1b0,$249,$1b2,$227,$1b4,$fcb,$1b6,$f98
- Dc.w $1b8,$c76,$1ba,$f22,$1bc,$c00,$1be,$800
-
- block2 ds.w lines2*8
-
- dc.w $ffd9,$fffe,$100,$1200
-
- dc.w $0009,$fffe,$100,$200,$108,4
- dc.w $180,$fff,$182,$fc8,$184,$a84,$186,$542
- dc.w $192,$18
- dc.w $0109,$fffe,$100,$3600
- dc.w $180,$4
- bits2 dc.w $e0,0,$e2,0,$e8,0,$ea,0
-
- blockblur ds.w lines4*6
-
- dc.w $2009,$fffe,$100,$1200,$180,$fff
- dc.w $108,0
-
- block3 ds.w lines3*10
- dc.w $ffff,$fffe
- dc.w $ffff,$fffe
-
- copperlist2 dc.w $8e,$1b41,$90,$40f1,$92,$30,$94,$d8,$104,$24,$102,0,$96,$8220
- dc.w $100,$4200,$108,44*4-44,$10a,44*4-44,$180,$015
- spritelist2 dc.w $120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0,$12e,0
- dc.w $130,0,$132,0,$134,0,$136,0,$138,0,$13a,0,$13c,0,$13e,0
-
- Dc.w $1a0,0,$1a2,$fff,$1a4,$ccc,$1a6,$888
- Dc.w $1a8,$555,$1aa,$79f,$1ac,$38f,$1ae,$16d
- Dc.w $1b0,$249,$1b2,$227,$1b4,$fcb,$1b6,$f98
- Dc.w $1b8,$c76,$1ba,$f22,$1bc,$c00,$1be,$800
-
- bits1_1 dc.w $e0,0,$e2,0,$e4,0,$e6,0,$e8,0,$ea,0,$ec,0,$ee,0
-
- logopal dc.w $180,$015,$182,$015,$184,$015,$186,$015,$188,$015,$18a,$015,$18c,$015,$18e,$015
- dc.w $190,$015,$192,$015,$194,$015,$196,$015,$198,$015,$19a,$015,$19c,$015,$19e,$015
-
- dc.w $ffd9,$fffe,$100,$200
-
- upline dc.w $1e09,$fffe,$180,$015
- dc.w $1f09,$fffe,$180,$015
-
- dc.w $2009,$fffe
- cline ds.l 59+1
-
- dc.w $ffff,$fffe
- dc.w $ffff,$fffe
-
- Section 'Non-chip',DATA
-
- cols1 incbin data/bigcopper_cols
- cols2 incbin data/smallcopper_cols
- colzend EVEN
- sine incbin data/sine(512*300).dat
-
- Section 'GFX',DATA_C
-
- ds.l (44*144)/4
- fx_gfx1 incbin gfx/sin1.352x144x1
- ds.l (44*144)/4
- fx_gfx2 incbin gfx/sin2.352x144x1
- font1 incbin gfx/safont1.944x30x2.bit
- font2 incbin gfx/safont2.944x16x4.ilbm
- logo incbin gfx/dc_logo352x85x4.ilbm
- logoend EVEN
- spritedata incbin gfx/sonic.dat
-
- Section 'Music',DATA_C
-
- IFNE music
- mt_data incbin data/mod.shitty-beeper
- ENDC
-
- Section 'Screens',BSS_C
-
- scrollbuffer ds.l (48*32*2)/4
- charbuffer ds.l (44*4)*80
- screen ds.l $4010
-
-